Re: [eppext] Moving forward with the keyrelay draft

"Gould, James" <JGould@verisign.com> Wed, 12 November 2014 21:34 UTC

Return-Path: <JGould@verisign.com>
X-Original-To: eppext@ietfa.amsl.com
Delivered-To: eppext@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A011E1AD3DB for <eppext@ietfa.amsl.com>; Wed, 12 Nov 2014 13:34:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UvBdYFzcg0Up for <eppext@ietfa.amsl.com>; Wed, 12 Nov 2014 13:34:42 -0800 (PST)
Received: from exprod6og109.obsmtp.com (exprod6og109.obsmtp.com [64.18.1.23]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C34B1AD3CA for <eppext@ietf.org>; Wed, 12 Nov 2014 13:34:39 -0800 (PST)
Received: from brn1lxmailout02.vcorp.ad.vrsn.com ([72.13.63.42]) (using TLSv1) by exprod6ob109.postini.com ([64.18.5.12]) with SMTP ID DSNKVGPSb3VFuQg9GiIhslAVljXvU39mXTAW@postini.com; Wed, 12 Nov 2014 13:34:41 PST
Received: from brn1wnexcas02.vcorp.ad.vrsn.com (brn1wnexcas02.vcorp.ad.vrsn.com [10.173.152.206]) by brn1lxmailout02.vcorp.ad.vrsn.com (8.13.8/8.13.8) with ESMTP id sACLYcuY015502 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 12 Nov 2014 16:34:38 -0500
Received: from BRN1WNEXMBX01.vcorp.ad.vrsn.com ([::1]) by brn1wnexcas02.vcorp.ad.vrsn.com ([::1]) with mapi id 14.03.0174.001; Wed, 12 Nov 2014 16:34:37 -0500
From: "Gould, James" <JGould@verisign.com>
To: Rik Ribbers <rik.ribbers@sidn.nl>
Thread-Topic: [eppext] Moving forward with the keyrelay draft
Thread-Index: Ac/+sQnoHqf7s4IMSMW0gDCgLkxpQAAL02GAAAks/bD//8l2gA==
Date: Wed, 12 Nov 2014 21:34:36 +0000
Message-ID: <56AB6B85-AEC6-4CC4-A3AA-A1C4D4E73210@verisign.com>
References: <C80127C588F8F2409E2B535AF968B768B687D665@kambx2.SIDN.local> <8DCB600D-27E3-4E31-95F3-8780396BF38B@verisign.com> <C80127C588F8F2409E2B535AF968B768B687D77E@kambx2.SIDN.local>
In-Reply-To: <C80127C588F8F2409E2B535AF968B768B687D77E@kambx2.SIDN.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.173.152.4]
Content-Type: multipart/related; boundary="_004_56AB6B85AEC64CC4A3AAA1C4D4E73210verisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/eppext/94Nqtd9_hHixNpHnGYELbDjrv58
Cc: "eppext@ietf.org" <eppext@ietf.org>
Subject: Re: [eppext] Moving forward with the keyrelay draft
X-BeenThere: eppext@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: EPPEXT <eppext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/eppext>, <mailto:eppext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/eppext/>
List-Post: <mailto:eppext@ietf.org>
List-Help: <mailto:eppext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/eppext>, <mailto:eppext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 Nov 2014 21:34:47 -0000

Rik,

I completely agree that others should weigh in on this.  Those that hummed, please respond.  I see two options that have been presented, where I’ll remove the command-response extension option to simplify things.  I include some notes embedded in your message below.

1. Use protocol extension with object extension

Command looks like:

<epp><extension>
   <r:relay xmlns:r="urn:ietf:params:xml:ns:relay-1.0">
   <k:keyData  xmlns:k="urn:ietf:params:xml:ns:keyrelay-1.0">
     ...
     {key data}
    ...
   </k:keyData>
   </r:relay>
</extension></epp>

Poll message looks looks like:

...
<resData>
   <r:relay xmlns:r="urn:ietf:params:xml:ns:relay-1.0">
   <k:keyData  xmlns:k="urn:ietf:params:xml:ns:keyrelay-1.0">
     ...
     {key data}
     ...
   </k:keyData>
   </r:relay>
</resData>
…

2. Use object extension

Command looks like:

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
  xmlns:keyrelay="urn:ietf:params:xml:ns:keyrelay-1.0">
 <command>
   <create>
     <keyrelay:create>
       <keyrelay:name>example.org<http://example.org></keyrelay:name>
       <keyrelay:keyData>
          <secDNS:flags>256</secDNS:flags>
          <secDNS:protocol>3</secDNS:protocol>
          <secDNS:alg>8</secDNS:alg>
          <secDNS:pubKey>cmlraXN0aGViZXN0</secDNS:pubKey>
       </keyrelay:keyData>
       <keyrelay:authInfo>
          <domain:pw>JnSdBAZSxxzJ</domain:pw>
       </keyrelay:authInfo>
       <keyrelay:expiry>
          <keyrelay:relative>P1M13D</keyrelay:relative>
       </keyrelay:expiry>
     </keyrelay:create>
   </create>
   <clTRID>123456</clTRID>
 </command>
</epp>

Poll message looks like:

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
  xmlns:keyrelay="urn:ietf:params:xml:ns:keyrelay-1.0">
  <response>
    <result code="1301">
       <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="5" id="12345">
       <qDate>1999-04-04T22:01:00.0Z</qDate>
       <msg>Key Relay action completed successfully.</msg>
    </msgQ>
    <resData>
      <keyrelay:infData>
        <keyrelay:name paResult="true">example.org<http://example.org>
        </keyrelay:name>
        <keyrelay:paDate>1999-04-04T22:01:00.0Z
        </keyrelay:paDate>
        <keyrelay:keyData>
          <secDNS:flags>256</secDNS:flags>
          <secDNS:protocol>3</secDNS:protocol>
          <secDNS:alg>8</secDNS:alg>
          <secDNS:pubKey>cmlraXN0aGViZXN0</secDNS:pubKey>
        </keyrelay:keyData>
        <keyrelay:authInfo>
          <domain:pw>JnSdBAZSxxzJ</domain:pw>
        </keyrelay:authInfo>
        <keyrelay:expiry>
          <keyrelay:relative>P24D</keyrelay:relative>
        </keyrelay:expiry>
        <keyrelay:reID>ClientX</keyrelay:reID>
        <keyrelay:acID>ClientY</keyrelay:acID>
      </keyrelay:infData>
    </resData>
    <trID>
       <clTRID>BCD-23456</clTRID>
       <svTRID>65432-WXY</svTRID>
    </trID>
  </response>
</epp>



—


JG


[cid:77031CC3-BE7A-4188-A95F-D23115A30A4D@vcorp.ad.vrsn.com]

James Gould
Distinguished Engineer
jgould@Verisign.com

703-948-3271
12061 Bluemont Way
Reston, VA 20190

VerisignInc.com<http://VerisignInc.com>

On Nov 12, 2014, at 11:06 AM, Rik Ribbers <rik.ribbers@sidn.nl<mailto:rik.ribbers@sidn.nl>> wrote:

James,

Thanks for the feedback. I'm fully aware of your opinion, but I'm hoping other people will step up and state their opinion on the matter.

|Can you describe to the list your issue with creating an object mapping for key relay as opposed to creating a
|combination of a protocol extension for the enqueue and an object extension for the dequeue?

Looking at the object mappings there are, we would have to provide mapping for an existing command, the most obvious ones would be:

<create> --> The keyData is not created as a result of the protocol command <create>. The key is created by the DNS operator and relayed to losing DNS operator (using the Registrar/Registry channel).

A Key Relay poll message is created.  The keyData is contained within the Key Relay poll message.  The purpose of the Key Relay object is to be enqueued into the poll queue of the losing Registrar to be consumed via a dequeue.  I don’t see an issue with creating a poll message object via a create.

<transfer> --> Transfer is not used as a transfer is all about changing ownership of data managed by the Registry.

I don’t believe transfer is applicable if a new Key Relay object extension is created, since the first step is to create the Key Relay message.  There is no need for a transfer.

<update>   --> An <update> should in our opinion be reserved for the registrar of record (for an object managed by the Registry).


Yes, I don’t see the update in play if an object extension is defined.  The extension of <update> could be used if a command response extension of domain is desired, but I don’t believe the command response extension is the right way to go.

Other commands are for obvious reasons not usable, so these are the reasons behind the choice.

|One additional question is wether two separate extensions (protocol and object) requires two separate drafts?

That's a valid question on which I don't know the answer but if needed we will split them into two drafts. Actually this would require a re-charter of the WG. Let's first wait on the feedback on the first part and then see if splitting up is required.

Rik

From: Gould, James [mailto:JGould@verisign.com]
Sent: woensdag 12 november 2014 10:24
To: Rik Ribbers
Cc: eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] Moving forward with the keyrelay draft

Rik,

I still believe that this can be easily accomplished by creating a single object extension called Key Relay that supports create to enqueue the poll message and the info response as the content of the dequeue of the poll message.  I understand the concern around creating an object extension for a transient object, but I don’t believe the EPP RFC’s limit the type of objects that can be provisioned.  An object can be a standard object stored in the database for subsequent update (e.g. domain, host, contact), an object can be a message object put into a queue for consumption by an authorized client (e.g. key relay), or an object can be a read-only object created by the server for various purposes like (name suggestion, registry meta-data, etc.).  Can you describe to the list your issue with creating an object mapping for key relay as opposed to creating a combination of a protocol extension for the enqueue and an object extension for the dequeue?  Creating two separate namespaces is a step in the right direction if two extensions are needed, but I believe that the use of a protocol extension for the enqueue is overly complex and can be better handled by using an object extension.  One additional question is wether two separate extensions (protocol and object) requires two separate drafts?

We can discuss this more in person tomorrow and report the results of the discussion back to the list.

Thanks,

—


JG

<image001.png>

James Gould
Distinguished Engineer
jgould@Verisign.com<x-msg://81/jgould@Verisign.com>

703-948-3271
12061 Bluemont Way
Reston, VA 20190

VerisignInc.com<http://verisigninc.com/>

On Nov 12, 2014, at 9:55 AM, Rik Ribbers <rik.ribbers@sidn.nl<mailto:rik.ribbers@sidn.nl>> wrote:


I've been in contact with the other authors after the discussion in the WG last Monday and there are two thing I promised to bring back to the list.

1) The authors support the standards track. Depending of the outcome of the discussion on the mailing list we will publish a new version of the document.

That was the easy part. The next part will hopefully spark some discussion on the list.

2) Major issue for moving forward with the draft is how we:
  A) Resolve the issue James Gould brought up on the namespaces  in the EPP greeting.
  B) Reach consensus on which extensions to be used.

As stated in the WG session we think none of the existing commands or the existing object mappings reflect what we want to accomplish. For us it is more then slightly modifying the protocol in our favor (as described in RFC3735).

What we want to do with the XML is in short the following
- Create a separate new namespace "urn:ietf:params:xml:ns:relay-1.0" for sending the command to the registry.
- Use the "urn:ietf:params:xml:ns:keyrelay-1.0" namespace for defining the data to be relayed.
- To avoid confusion between namespaces in the xml, rename the command from <keyrelay> to <relay>. This was originally suggested by Jay Daley on the mailing list. Side effect is that the relay command becomes more generic and can be reused for relaying data if more business cases emerge in the future.

The resulting  XML will look like this (I stripped the fluffy stuff to focus on the structure)

The EPP command:

<epp><extension>
   <r:relay xmlns:r="urn:ietf:params:xml:ns:relay-1.0">
   <k:keyData  xmlns:k="urn:ietf:params:xml:ns:keyrelay-1.0">
     ...
     {key data}
    ...
   </k:keyData>
   </r:relay>
</extension></epp>

The EPP poll response:

...
<resData>
   <r:relay xmlns:r="urn:ietf:params:xml:ns:relay-1.0">
   <k:keyData  xmlns:k="urn:ietf:params:xml:ns:keyrelay-1.0">
     ...
     {key data}
     ...
   </k:keyData>
   </r:relay>
</resData>
...

And the greeting will become like this:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <greeting>
    ...
    <svcMenu>
      ...
      <objURI>urn:ietf:params:xml:ns:keyrelay-1.0</objURI>
      <svcExtension>
        ...
        <extURI>urn:ietf:params:xml:ns:relay-1.0</extURI>
      </svcExtension>
    </svcMenu>
    ...
  </greeting>
</epp>

Please provide feedback on the list or come up to me if you are in Honolulu. I will be (t)here until Friday.

Rik
_______________________________________________
EppExt mailing list
EppExt@ietf.org<mailto:EppExt@ietf.org>
https://www.ietf.org/mailman/listinfo/eppext